/**
 * 封装在query 上的工具类 ,操作数据字典
 * 
 * @只有第一次去数据库访问，第二次从本地缓存里面取数
 */
;
(function($) {
	var dicMap = {}; // 缓存表对象
	/**
	 * 数得数据字典文本
	 * 
	 * @param code
	 */
	function getDicText(id, fun) {
		$.ajax({
			type : "post",
			url : ctxPath + "/tSystemDict/getSystemDict",
			data : {
				id : id
			},
			dataType : "json",
			async : false,
			success : function(data) {
				fun(data.data); // 返回的是列表
			}
		});
	}
	$.extend({
		dict : {
			cache : function(id, dictValue) { // 根据唯一id查询对应的数据
				// 先判断缓存有没有
				if (dicMap[id] == undefined) {
					getDicText(id, function(data) {
						if ((typeof data == 'object') && data.constructor == Array) {
							var obj = {};
							// 改变为纯key 与value
							for ( var key in data) {
								var o = data[key];
								obj[o.dictValue] = o.name;
							}
							dicMap[id] = obj;
						}
					});
				}
				// 然后返回已经缓存好的值
				if (dicMap[id][dictValue] == undefined) {
					return "";
				}
				return dicMap[id][dictValue]; // 返回查询的这个父对象的对应的字典值
			},
			dict : function() { // 返回一个操作副本
				var dictObj = {};
				return $.extend(true, dictObj, dicMap);
			}
		}
	});
})(jQuery, undefined);
